package org.jflame.devAide.plugin;

import javafx.scene.Node;

/**
 * 工具型插件接口
 * 
 * @author yucan.zhang
 */
public interface ToolPlugin extends Comparable<ToolPlugin> {

    /**
     * 插件信息
     * 
     * @return
     */
    public PluginInfo getPluginInfo();

    /**
     * 返回的插件根节点Node
     * 
     * @return
     */
    public Node getContent();

    /**
     * 关闭时执行操作
     */
    default public void close() {

    }

    /**
     * 返回插件图标
     * 
     * @param size 图标尺寸,<1时返回固定尺寸
     * @return
     */
    public Node getIcon(double size);

    public boolean isFav();

    default public String name() {
        return getPluginInfo().getName();
    }

    @Override
    default public int compareTo(ToolPlugin o) {
        return getPluginInfo().compareTo(o.getPluginInfo());
    }

}
